DU

Como Criar Treiners Invisiveis Que So Aparecem Quando Vc Chega Perto.

Por DuuhCarvalho, 19 de jan. de 2012 em Tutoriais de Scripting

treiners
script
13
2.3k
19 de janeiro de 2012 às 04:16

Vou tentar explica o melhor possivel, vamos lá.

 

abra Data/movements/scripts Criem um novo arquivo treiners.lua e coloquem isso dentro

 

 

function onStepIn(cid, item, pos)
local charPos = getCreaturePosition(cid)
local monkOne
local monkTwo

if(item.actionid == 9000) then
monkOne = {x = charPos.x + 0, y = charPos.y - 2, z = charPos.z}
monkTwo = {x = charPos.x + 1, y = charPos.y - 2, z = charPos.z}

elseif(item.actionid == 9001) then
monkOne = {x = charPos.x - 1, y = charPos.y + 2, z = charPos.z}
monkTwo = {x = charPos.x + 0, y = charPos.y + 2, z = charPos.z}

elseif(item.actionid == 9002) then
monkOne = {x = charPos.x - 1, y = charPos.y - 2, z = charPos.z}
monkTwo = {x = charPos.x + 0, y = charPos.y - 2, z = charPos.z}

elseif(item.actionid == 9003) then
monkOne = {x = charPos.x + 0, y = charPos.y + 2, z = charPos.z}
monkTwo = {x = charPos.x + 1, y = charPos.y + 2, z = charPos.z}

elseif(item.actionid == 9004) then
monkOne = {x = charPos.x + 2, y = charPos.y - 1, z = charPos.z}
monkTwo = {x = charPos.x + 5, y = charPos.y - 1, z = charPos.z}

else
return true
end

doSummonCreature("Alvo", monkOne)
doSummonCreature("Alvo", monkTwo)
return true
end

function onStepOut(cid, item, pos)
local charPos = getCreaturePosition(cid)
local monkOne
local monkTwo

if(item.actionid == 9000) then
monkOne = {x = charPos.x + 0, y = charPos.y - 2, z = charPos.z}
monkTwo = {x = charPos.x + 1, y = charPos.y - 2, z = charPos.z}

elseif(item.actionid == 9001) then
monkOne = {x = charPos.x - 1, y = charPos.y + 2, z = charPos.z}
monkTwo = {x = charPos.x + 0, y = charPos.y + 2, z = charPos.z}

elseif(item.actionid == 9002) then
monkOne = {x = charPos.x - 1, y = charPos.y - 2, z = charPos.z}
monkTwo = {x = charPos.x + 0, y = charPos.y - 2, z = charPos.z}

elseif(item.actionid == 9003) then
monkOne = {x = charPos.x + 0, y = charPos.y + 2, z = charPos.z}
monkTwo = {x = charPos.x + 1, y = charPos.y + 2, z = charPos.z}

elseif(item.actionid == 9004) then
monkOne = {x = charPos.x + 3, y = charPos.y - 1, z = charPos.z}
monkTwo = {x = charPos.x + 6, y = charPos.y + 0, z = charPos.z}

else
return true
end

doRemoveCreature(getThingfromPos({x = monkOne.x, y = monkOne.y, z = monkOne.z, stackpos = 253}).uid)
doRemoveCreature(getThingfromPos({x = monkTwo.x, y = monkTwo.y, z = monkTwo.z, stackpos = 253}).uid)
doSendMagicEffect(monkOne, 3)
doSendMagicEffect(monkTwo, 3)
return true
end

 

 

Agora vá em Data/movements/movements.lua e coloquem isso dentro

 

 

<movevent type="StepIn" actionid="9000" event="script" value="treiners.lua"/>
<movevent type="StepOut" actionid="9000" event="script" value="treiners.lua"/>
<movevent type="StepIn" actionid="9001" event="script" value="treiners.lua"/>
<movevent type="StepOut" actionid="9001" event="script" value="treiners.lua"/>
<movevent type="StepIn" actionid="9002" event="script" value="treiners.lua"/>
<movevent type="StepOut" actionid="9002" event="script" value="treiners.lua"/>
<movevent type="StepIn" actionid="9003" event="script" value="treiners.lua"/>
<movevent type="StepOut" actionid="9003" event="script" value="treiners.lua"/>
<movevent type="StepIn" actionid="9004" event="script" value="treinersxd.lua"/>
<movevent type="StepOut" actionid="9004" event="script" value="treinersxd.lua"/>

 

 

Agora temos que criar um monster

 

Vá em Data/monster/demon bosses Copie um arquivo qualquer renomei, coloque Alvo abra o arquivo em bloco de notas apague o que tem lá e coloque isso dentro

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<monster name="Alvo" nameDescription="a alvo" race="blood" experience="200" speed="0" manacost="600">
<health now="999999" max="999999"/>
<look typeex="5787" corpse="6080"/>
<targetchange interval="5000" chance="8"/>
<strategy attack="100" defense="0"/>
<flags>
<flag summonable="1"/>
<flag attackable="1"/>
<flag hostile="1"/>
<flag illusionable="1"/>
<flag convinceable="0"/>
<flag pushable="0"/>
<flag canpushitems="1"/>
<flag canpushcreatures="1"/>
<flag targetdistance="1"/>
<flag staticattack="90"/>
<flag runonhealth="0"/>
</flags>
<attacks>
<attack name="melee" interval="2000" min="-1" max="-1"/>
</attacks>
<defenses armor="20" defense="22">
<defense name="healing" interval="1000" chance="20" min="999999" max="999999">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="10" speedchange="300" duration="3000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
<elements>
<element holyPercent="50"/>
<element deathPercent="50"/>
<element physicalPercent="-15"/>
</elements>
<immunities>
<immunity invisible="1"/>
</immunities>
<loot>
<item id="2148" countmax="20" chance="100000"/><!-- gold coin -->
<item id="1949" chance="10000"/><!-- scroll -->
<item id="2467" chance="10000"/><!-- leather armor -->
<item id="2642" chance="6666"/><!-- sandals -->
<item id="2193" chance="1200"/><!-- ankh -->
<item id="1987" chance="100000"><!-- bag -->
<inside>
<item id="2044" chance="6666"/><!-- lamp -->
<item id="2689" countmax="3" chance="20000"/><!-- bread -->
<item id="2401" chance="3333"/><!-- staff -->
<item id="2166" chance="1428"/><!-- power ring -->
</inside>
</item>
</loot>
</monster>

 

 

Agora vá em Data/monster/monsters Abra em bloco de notas procure onde ta escrito isso

 

<!-- Demon Bosses -->
<monster name="Bazir" file="Demon Bosses/Bazir.xml"/>
<monster name="Infernatil" file="Demon Bosses/Infernatil.xml"/>
<monster name="Zoralurk" file="Demon Bosses/zoralurk.xml"/>
<monster name="Apocalypse" file="Demon bosses/apocalypse.xml"/>
<monster name="Ghazbaran" file="Demon bosses/ghazbaran.xml"/>
<monster name="Morgaroth" file="Demon bosses/morgaroth.xml"/>
<monster name="Orshabaal" file="Demon bosses/orshabaal.xml"/>

 

E coloque isso entra algum ai

 

<monster name="Alvo" file="Demon Bosses/Alvo.xml"/>

 

Feito Isso Abra o Remere's Map Editor e coloque o actionid onde o seu char vai ficar atacando o treiner. :D

 

post-339788-0-78779100-1326953179_thumb.jpg

 

post-339788-0-78779100-1326953179_thumb.jpg

 

 

Pronto :D

post-339788-0-45090500-1326953181_thumb.jpg

Editado Janeiro 19 por DuuhCarvalho

SkyDarknessS
19 de janeiro de 2012 às 04:16

Perfect Script, vou por no meu otserv :D Cotinue com trabalho !

19 de janeiro de 2012 às 04:19

Vlw SkyDarkness Agradeço

Henrique MouraH
19 de janeiro de 2012 às 04:20

Fala cara,

 

Tá certinho dessa vez ^.~

Gostei bastante do seu tópico, é bom ver que até mesmo os novos membros tem capacidade e vontade de contribuir.

 

PS: Não fique respondendo todas as mensagens de agradecimento com outro agradecimento hihihi, isso pode ser contra as regras :)

 

Parabéns!

Abraços.

Editado Janeiro 19 por Henrique Moura

notleN
19 de janeiro de 2012 às 04:52

esse Script sim merece ir pro meu ot

AlicqA
19 de janeiro de 2012 às 17:30

Excelente.

REP+ :XTibia_smile:

Editado Janeiro 19 por Alicq

Osama11O
21 de janeiro de 2012 às 04:58

Parabenns Primeiro Post de scripts... ki eu consegui entende kkk

HisashiitYamagutiH
23 de janeiro de 2012 às 10:18

Gostei, obviamente esse script já existe faz tempo, porém eu acho que ele nunca esteve no xtibia.

Poste os devidos créditos, pois o script não é de sua autoria.

24 de janeiro de 2012 às 03:48

Creditos Denner Diegoli e Meu >.<

HisashiitYamagutiH
24 de janeiro de 2012 às 09:03

Duuh, você está no pc até no Natal, vish...

 

Que bom que colocou os devidos créditos :).

1 mês depois...
LordfireL
08 de fevereiro de 2012 às 23:43

Aprovado, mas revise o português do tópico.

2 meses depois...
SubheS
10 de abril de 2012 às 10:49

tem como me explicar oq é actionid ? ;x

actionid seria o treiner ?

 

me ajuda ai, dou 2 Rep+ (1 pra quem criou o script e o outro pra quem me ajudar)

Editado Abril 10 por Subhe

1 mês depois...
07 de maio de 2012 às 10:58

Se nao me engano é esse aque os action ID : if(item.actionid == 9000) then, if(item.actionid == 9001) then, if(item.actionid == 9002) then, if(item.actionid == 9003) then, if(item.actionid == 9004) then

 

E queria saber se tem como adicionar novos action id ?